The present invention relates to the field of managing timers in data processing systems, and more particularly to a timer management system that is used in both a synchronous and asynchronous system where an asynchronous application is synchronously acting on the timer in an asynchronous system and that allows a timer to be reinitialized without allocating new system memory.
A timer is a device which can be set to furnish an interrupt or a timeout indication at a specific time instant or after a selected time interval. Timers are required in data processing systems in which typical protocols require that a very large number of simultaneously occurring tasks or events be supervised to detect whether they occurred within predetermined delays. For example, a start operation may be sent by the application to start the timer in order to supervise a corresponding event. When the supervision of an event has to be interrupted for different reasons, a stop operation may be generated by the corresponding application. After a while, the supervision of the corresponding event may be requested to start again, in which case a start operation may be generated by the application. While the timer associated with an event is still running, the application may request a restart operation in order to delay the timing of the corresponding event.
A real-time operating system (RTOS), e.g., VxWorks(trademark), OSE, Lynx, within a data processing system provides hardware resource management functions, e.g., memory management, task management, and data input/output management. The operating system may further include a user interface for handling a screen display and the manipulation of a mouse. The operating system may further include a module such as a timer management program, i.e., timer management system, for managing a plurality of timers that are started, stopped, idled, etc. by an application program in a data processing system. Application programs, e.g., word processing software, database software, software for calculation for tables, reside on top of the OS in the topmost layer of a hierarchial software arrangement.
Prior art timer management systems are used in either synchronous, i.e., single task, or asynchronous, i.e., multi-task, data processing systems. In a synchronous system, when the timer expires, the application, i.e., user of the timer, is notified by a message commonly referred to as a timer message. In an asynchronous system, when the timer expires, the timer message may be stored on queue before being sent to the application, i.e., user of the timer. If the application stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when the application performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. In a synchronous system, this problem does not occur.
It would therefore be desirable to develop a timer management system that is used in both a synchronous and asynchronous system where an asynchronous application is synchronously acting on the timer in an asynchronous system. That is, it would therefore be desirable to develop a function of filter these illegal time-out messages that are transparent to the application. It would further be desirable to allow a timer to be reinitialized without allocating new system memory.
The problems outlined above may at least in part be solved in some embodiments by a handle function that allows an asynchronous application in a multi-task system, i.e., asynchronous system, to synchronously act on the timer. That is, when a timer in an asynchronous system times-out, the handle function filters the illegal time-out messages by allowing the asynchronous application to synchronously act on the timer. In another embodiment of the present invention, a timer may be reinitialized from the same allocated block of memory used to create the timer. In another embodiment of the present invention, a time-out message may be sent using the same allocated block of memory used to create the timer.
In one embodiment, a timer management system for managing timers in both a synchronous and asynchronous system comprises an application program interface (API) for providing a set of synchronous functions allowing an application to functionally operate on the timer. The timer management system further comprises a timer database for storing timer-related information. Furthermore, the timer management system comprises a timer services for detecting the expiring of the timer. A handle function of the timer services allows the asynchronous application, i.e., application in an asynchronous system, to synchronously act on the timer. When the timer expires, the handle function of the timer services allows the asynchronous application to act on the expired timer without incurring illegal time-out messages.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.